package com.chenbei.schedule.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chenbei.schedule.domain.ScheduleJob;
import com.chenbei.schedule.vo.req.ScheduleJobReq;

public interface ScheduleJobService extends IService<ScheduleJob> {

    /**
     * 新增任务
     * @param scheduleJob 任务定义
     */
    void add(ScheduleJob scheduleJob);

    /**
     * 更新任务
     * @param scheduleJob 任务定义
     */
    void update(ScheduleJob scheduleJob);

    /**
     * 运行一次任务
     * @param id JobId
     */
    void runOnceJob(Long id);

    /**
     * 开始任务
     * @param id JobId
     */
    void start(Long id);

    /**
     * 暂停任务
     * @param id JobId
     */
    void pause(Long id);

    /**
     * 删除任务
     * @param id JobId
     */
    void delete(Long id);

    /**
     * 分页查询
     * @param scheduleJobReq 查询实例
     * @return Page
     */
    Page<ScheduleJob> pageList(ScheduleJobReq scheduleJobReq);
}
